home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue38 / BuildPro / MY PROJECT 2 / Main.pas < prev    next >
Pascal/Delphi Source File  |  1998-04-21  |  4KB  |  148 lines

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses Windows, Classes, Graphics, Forms, Controls, Menus,
  6.   Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls;
  7.  
  8. type
  9.   TMainForm = class(TForm)
  10.     LogoAppMenu: TMainMenu;
  11.     FileMenu: TMenuItem;
  12.     FileNewItem: TMenuItem;
  13.     FileOpenItem: TMenuItem;
  14.     FileSaveItem: TMenuItem;
  15.     FileSendItem: TMenuItem;
  16.     FileExitItem: TMenuItem;
  17.     OpenDialog: TOpenDialog;
  18.     SaveDialog: TSaveDialog;
  19.     Help1: TMenuItem;
  20.     AboutItem: TMenuItem;
  21.     SpeedPanel: TPanel;
  22.     OpenBtn: TSpeedButton;
  23.     SaveBtn: TSpeedButton;
  24.     ExitBtn: TSpeedButton;
  25.     StatusBar: TStatusBar;
  26.     RichEdit1: TRichEdit;
  27.     SendBtn: TSpeedButton;
  28.     procedure FormCreate(Sender: TObject);
  29.     procedure FileExit(Sender: TObject);
  30.     procedure FileNew(Sender: TObject);
  31.     procedure FileOpen(Sender: TObject);
  32.     procedure FileSave(Sender: TObject);
  33.     procedure FileSaveAs(Sender: TObject);
  34.     procedure FileSend(Sender: TObject);
  35.     procedure About(Sender: TObject);
  36.     procedure ShowHint(Sender: TObject);
  37.   private
  38.     FFileName: String;
  39.   public
  40.     { Public declarations }
  41.   end;
  42.  
  43. var
  44.   MainForm: TMainForm;
  45.  
  46. implementation
  47.  
  48. uses SysUtils, Mapi, AboutMyProduct;
  49.  
  50. {$R *.DFM}
  51.  
  52. resourcestring
  53.   rsUntitled = 'Untitled';
  54.   rsOverwrite = 'OK to overwrite %s';
  55.   rsSendError = 'Error sending mail';
  56.  
  57. procedure TMainForm.FormCreate(Sender: TObject);
  58. begin
  59.   Application.OnHint := ShowHint;
  60. end;
  61.  
  62. procedure TMainForm.FileNew(Sender: TObject);
  63. begin
  64.   FFileName := rsUntitled;
  65.   RichEdit1.Lines.Clear;
  66.   RichEdit1.Modified := False;
  67. end;
  68.  
  69. procedure TMainForm.FileOpen(Sender: TObject);
  70. begin
  71.   if OpenDialog.Execute then
  72.   begin
  73.     RichEdit1.Lines.LoadFromFile(OpenDialog.FileName);
  74.     FFileName := OpenDialog.FileName;
  75.     RichEdit1.SetFocus;
  76.     RichEdit1.Modified := False;
  77.     RichEdit1.ReadOnly := ofReadOnly in OpenDialog.Options;
  78.   end;
  79. end;
  80.  
  81. procedure TMainForm.FileSave(Sender: TObject);
  82. begin
  83.   if FFileName = rsUntitled then
  84.     FileSaveAs(Sender)
  85.   else
  86.   begin
  87.     RichEdit1.Lines.SaveToFile(FFileName);
  88.     RichEdit1.Modified := False;
  89.   end;
  90. end;
  91.  
  92. procedure TMainForm.FileSaveAs(Sender: TObject);
  93. begin
  94.   if SaveDialog.Execute then
  95.   begin
  96.     if FileExists(SaveDialog.FileName) then
  97.       if MessageDlg(Format (rsOverwrite, [SaveDialog.FileName]),
  98.         mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit;
  99.     RichEdit1.Lines.SaveToFile(SaveDialog.FileName);
  100.     FFileName := SaveDialog.FileName;
  101.     RichEdit1.Modified := False;
  102.   end;
  103. end;
  104.  
  105. procedure TMainForm.FileSend(Sender: TObject);
  106. var
  107.   MapiMessage: TMapiMessage;
  108.   MError: Cardinal;
  109. begin
  110.   with MapiMessage do
  111.   begin
  112.     ulReserved := 0;
  113.     lpszSubject := nil;
  114.     lpszNoteText := PChar(RichEdit1.Lines.Text);
  115.     lpszMessageType := nil; 
  116.     lpszDateReceived := nil; 
  117.     lpszConversationID := nil; 
  118.     flFlags := 0;
  119.     lpOriginator := nil; 
  120.     nRecipCount := 0;
  121.     lpRecips := nil; 
  122.     nFileCount := 0;
  123.     lpFiles := nil; 
  124.   end;
  125.   
  126.   MError := MapiSendMail(0, 0, MapiMessage, 
  127.     MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);
  128.   if MError <> 0 then MessageDlg(rsSendError, mtError, [mbOK], 0);
  129. end;
  130.  
  131. procedure TMainForm.FileExit(Sender: TObject);
  132. begin
  133.   Close;
  134. end;
  135.  
  136. procedure TMainForm.About(Sender: TObject);
  137. begin
  138.   AboutBox.ShowModal;
  139. end;
  140.  
  141. procedure TMainForm.ShowHint(Sender: TObject);
  142. begin
  143.   StatusBar.SimpleText := Application.Hint;
  144. end;
  145.  
  146. end.
  147.  
  148.